#include<iostream>
using std::cout; using std::endl; using std::cin;
#include<string>
using std::string;
#include<vector>
using std::vector;
class Transaction {
    public:
         Transaction(const string &);
        void logTransaction(const string &) const ;
    private:
        int amount;
        double prices;
        string type;
};

Transaction::Transaction(const string &logInfo){ 
    logTransaction(logInfo);
}

void Transaction::logTransaction(const string &logInfo) const{
    cout << logInfo << endl;
}

//why author don't build construct of BuyTransaction directly?
class BuyTransaction: public Transaction {
    public:
        BuyTransaction(const string &);

    private:
        static string createLogString(const string &){

        }
};
BuyTransaction::BuyTransaction(const string &logInfo) : Transaction(logInfo){
        cout << "BuyTransaction::BuyTransaction" << endl;
}


class SellTransaction : public Transaction{
    public:
        virtual void logTransaction() const;
};
// void SellTransaction::logTransaction() const{
//     cout << "SellTransaction::logTransaction" << endl;   
// }

int main(){
    BuyTransaction b("BuyTranscation constucted");   // why the BuyTranscation version of b doesn't called?

}